package carregarcasosdeteste;

import interfaceusuario.TelaCriacaoDaSuiteDeTestes;

import java.util.LinkedList;

import entidadesparaguardardadosteste.CasoDeTeste;
import entidadesparaguardardadosteste.SuiteDeTestes;

/*essa classe ira criar */
public class CriaTelaCriacaoDaSuiteDeTestesAPartirDeCasosJaProntos 
{
	private LinkedList<CasoDeTeste> casosDeTesteJaCarregados;
	private String nomeDaSuiteDeTestes;
	private String nomeDiretorioDoProjeto;
	
	public CriaTelaCriacaoDaSuiteDeTestesAPartirDeCasosJaProntos(SuiteDeTestes suiteDeTestes)
	{
		this.casosDeTesteJaCarregados = suiteDeTestes.getCasosDeTesteDaSuite();
		this.nomeDaSuiteDeTestes = suiteDeTestes.getNomeSuiteDeTestes();
		this.nomeDiretorioDoProjeto = this.casosDeTesteJaCarregados.get(0).getEnderecoDoProjetoDaClasseATestar();
		editarMetodosDosCasosDeTesteDeUmProjetoCarregado();
	}
	
	public void editarMetodosDosCasosDeTesteDeUmProjetoCarregado()
	{
		EditaMetodosDosCasosDeTesteDeUmProjetoCarregado 
					editaMetodosDosCasosDeTesteDeUmProjetoCarregado =
				new EditaMetodosDosCasosDeTesteDeUmProjetoCarregado(this.casosDeTesteJaCarregados);
		editaMetodosDosCasosDeTesteDeUmProjetoCarregado.mudarMetodosDosCasosCarregados();
		this.casosDeTesteJaCarregados =
				editaMetodosDosCasosDeTesteDeUmProjetoCarregado.getCasosDeTesteComMetodosModificados();
	}
	
	public void criarTelaCriacaoDaSuiteDeTestes()
	{
		TelaCriacaoDaSuiteDeTestes telaCriaSuiteDeTestes =
				new TelaCriacaoDaSuiteDeTestes(nomeDaSuiteDeTestes, nomeDiretorioDoProjeto);
		
		telaCriaSuiteDeTestes.setCasosDeTesteDaSuite(this.casosDeTesteJaCarregados);
		
		/*para cada caso de testes, eu ja vou criar dentro da tela de criacao da suite
		 * um painel para ele. Todos os paineis serao criados antes da tela ser desenhada*/
		for(int i = 0; i < this.casosDeTesteJaCarregados.size(); i++)
		{
			CasoDeTeste umCasoDeTeste = this.casosDeTesteJaCarregados.get(i);
			telaCriaSuiteDeTestes.criarNovoPainelDoCasoDeTeste(umCasoDeTeste);
		}
		
		
		
		telaCriaSuiteDeTestes.atualizarPainelListagemDosCasosDeTeste();
	}

}
